package com.shujia.flink.table;

import org.apache.flink.table.functions.FunctionContext;
import org.apache.flink.table.functions.ScalarFunction;

public class StringLengthFunction extends ScalarFunction {
    /**
     * 可以在open方法中建立网络连接
     * open方阿飞每一个task只会执行一次
     *
     * @param context
     * @throws Exception
     */

    @Override
    public void open(FunctionContext context) throws Exception {
        super.open(context);
    }

    @Override
    public void close() throws Exception {
        super.close();
    }

    /**
     * flinkh会通过反射匹配方法名,和参数类型
     *
     * 只能是eval
     */
    public int eval(String str) {
        return str.length();
    }
    /**
     * 将写好的自定义函数的类,上传到flink的lib目录中
     * 需要重启sql-client 和yarn session
     * 在flink的客户端中注册函数
     * create function myhive.flink.stringlength as 'com.shujia.flink.table.StringLengthFunction'
     *
     *
     */

}
